어떻게 블로그를 구현하였나

#blog
#dev
#project
작성일:2025. 3. 8.
수정일:2025. 3. 20.

앞선 포스트에서 살펴본것처럼 내가 중요하게 생각한 블로그의 조건은 다음과 같았다.

  1. 블로그 포스팅과 노트 작성의 흐름이 자연스럽게 연결될 것
  2. 노트와 블로그 포스트가 분리되어, 원하는 노트만 포스팅할 수 있을 것
  3. 포스팅 시 블로그의 구조를 내가 직접 정의할 수 있을 것
  4. 필요에 따라 기능을 추가하거나 제거할 수 있도록 커스터마이징이 가능할 것

블로그 포스팅과 노트작성의 통합#

나는 Neovim 과 Obsidian 을 활용하여 노트를 작성하고 있다. 내가 이러한 셋업을 사용하면서 원하는 워크플로우는 Neovim 으로 노트를 작성 한 이후 커맨드를 사용하여 바로 노트를 동기화 시키고 블로그에 글을 포스팅하는 것 이었다.

노트를 동기화 시키는 방법은 두가지로 좁혀진다. DB를 사용하는 방식과 사용하지 않는 방식이다

DB를 사용하면 어려운점#

  1. 만약 DB를 사용하게 된다면 백엔드를 만들어 API를 활용해서 블로그를 관리해야 한다. 즉, 관리의 복잡성이 증가한다.
  2. API를 통해 먼저 DB에서 노트를 불러오고 현재 노트와 비교해야 하는 번거로운 작업이 필요하다.
  3. 노트의 버전 관리를 위해 추가적인 작업이 필요하며, 이 과정에서 데이터 동기화 문제(예: 중복 저장, 최신 버전 식별 등)가 발생할 가능성이 높다.
  4. 백엔드 서버를 유지보수해야 하므로 추가적인 비용과 관리 부담이 생긴다.
  5. 단순한 마크다운 기반 블로그를 운영하는 데 있어, DB를 활용하는 것이 오히려 과도한 복잡성을 초래할 수 있다.

이러한 문제점 때문에 나는 DB 사용하지 않기로 하였다. DB를 사용하지 않는다면 동적 사이트로 블로그를 개발할 이유가 사라진다. 그러면 이제 정적 사이트를 위해 고민할것은 파일을 프로젝트 폴더 안으로 가져와 파일을 동기화 해야 한다.

파일을 프로젝트 폴더 안으로 가져오는 것을 파이썬 스크립트를 사용하여 구현하기로 하였다. Python을 통해 파일 시스템을 만져본것은 처음이라 AI 툴을 활용하여 작성하였다. 완성된 스크립트는 링크를 통해 확인할 수 있다.

Tip

  • Python Script로 파일 복사해오기
  • Python Script로 Markdown 파일 읽어오기
  • Python Script로 JSON 파일 작성하기

Next.js 를 활용하여 블로그를 만들때 기본적으로 content 폴더에 파일들을 가져와 빌드하게 된다.